"""
import numpy as np    # 导入NumPy库，并给它一个别名np

# 创建一个2x3的二维NumPy数组
arr = np.array([
      [1, 2, 3],    # 第一行包含元素1, 2, 3
      [1, 3, 4]     # 第二行包含元素1, 3, 4
])

# 创建一个3维的NumPy数组，形状为2x2x3
arr_3 = np.array([
     [[1,2,3],[1,3,4]],    # 第一个2x3的子数组
     [[1,4,5],[1,5,6]]     # 第二个2x3的子数组
])

# 打印数组arr的第二列（索引为1的列）
print(arr[:,1])    # 输出: [2 3]，这表示打印出arr数组的第二列的所有元素

# 打印arr_3数组的第二层的所有元素（索引为1的层），并且只取每个2x3子数组的第二列
print(arr_3[:,:,1])    # 输出: [[2 3] [4 5]]，这表示打印出arr_3数组中每个2x3子数组的第二列的所有元素

总结
    即使是高维度 也是剥壳 [:,1] ,前面就是一层壳
    二维只有 [行,列]
    三维只有 [高,宽,[B,G,R]]
    :整个壳
"""
import cv2   # 导入OpenCV库

# 定义一个函数用于显示图像
def img_show(name, img):
    cv2.imshow(name, img)   # 显示图像
    cv2.waitKey(0)          # 按任意键退出
    cv2.destroyAllWindows()  # 关闭所有OpenCV创建的窗口

# 使用cv2.imread读取名为'bg.jpg'的图像文件
img = cv2.imread('bg.jpg')
print('彩图的形状:', img.shape)
# 显示图像
img_show('Original Image', img)

# 使用cv2.split函数将图像img分离成三个颜色通道：蓝色(b)，绿色(g)，红色(r)
b, g, r = cv2.split(img)
print('单通道的形状:', r.shape)

# 合并三个通道
img_ = cv2.merge((b, g, r))
print('合并图的形状:', img_.shape)

# 只保留 B(蓝色)，将绿色和红色通道置为0
img_B = img.copy()
img_B[:, :, 1] = 0
img_B[:, :, 2] = 0

# 只保留 G(绿色)，将蓝色和红色通道置为0
img_G = img.copy()
img_G[:, :, 0] = 0
img_G[:, :, 2] = 0

# 只保留 R(红色)，将蓝色和绿色通道置为0
img_R = img.copy()
img_R[:, :, 0] = 0
img_R[:, :, 1] = 0

# 分别显示只包含蓝色、绿色和红色通道的图像
img_show('bg_B', img_B)   # 显示只包含蓝色通道的图像
img_show('bg_G', img_G)   # 显示只包含绿色通道的图像
img_show('bg_R', img_R)   # 显示只包含红色通道的图像